//获取当前日期
function getNowDate(field) {
    const date = new Date();
    let year = date.getFullYear(),
        month = date.getMonth() + 1,
        day = date.getDate();
    switch (field) {
        case 'day':
            return `${year}-${month}-${day}`;
        case 'month':
            return `${year}-${month}`;
        case 'year':
            return `${year}`;
        default:
            return `${year}-${month}-${day}`
    }
}

//获取tab-底部导航的日期
function getIconData(type) {
    const date = new Date();
    switch (type) {
        case 'day':
            return _addZero(date.getDate().toString());
        case 'month':
            return _addZero((date.getMonth() + 1).toString());
        case 'year':
            return date.getFullYear().toString().substr(2); //取年份的后两位
    }
}

//给小于10的月、日前面补0，把2022-6-22变成2022-06-22这种格式
function _addZero(value) {
    return value < 10 ? ('0' + value) : value;
}

//日期格式转换：将2022-5-1转换成：2022年5月1日
function formatChsDate(date, type) {
    const _arr = date.split('-'); // 将日期（'2022-5-1'）以“-”分割成数组["2022", "5", "1"]
    switch (type) {
        case 'day':
            return `${_arr[0]}年${_arr[1]}月${_arr[2]}日`;
        case 'month':
            return `${_arr[0]}年${_arr[1]}月`;
        case 'year':
            return `${_arr[0]}年`
        default:
            return `${_arr[0]}年${_arr[1]}月${_arr[2]}日`;
    }
}

//遍历数组中的日期，将yyyy-mm-dd转换成yyyy年mm月dd日
function mapForChsDate(data, key) {
    return data.map((item) => {
        item[key] = formatChsDate(item[key]);
        return item;
    });
}

/**
 * 将搜索输入框的日期格式转换成正确的日期格式再提交
 * 20220505->2022-5-1
 */
function formatUserDate(value) {
    const len = value.length;
    let _arr = [],
        pattern;
    if (len < 4) {
        //日期长度小于4，不符合日期格式
        return;
    } else if (len === 4) {
        //日期长度为4，符合年份，例如2022
        return value;
    } else if (len === 5) {
        //日期长度为5的，只保留年份
        return value.substr(0, 4);
    } else if (len >= 6 && len < 8) {
        //日期长度为6-7的，保留年月：yyyy-mm
        pattern = /(\d{4})(\d{2})/;
        value = value.substr(0, 6).replace(pattern, '$1-$2'); //通过正则将202205修改为2022-05的格式
        _arr = Array.from(value).filter((item, index) => {
            console.log('item', item, index);
            if (index === 5 && item === '0') {
                return false;
            }
            return true;
        })
    } else if (len >= 8) {
        //日期长度>=8的，保留年月日：yyyy-mm-dd
        pattern = /(\d{4})(\d{2})(\d{2})/;
        value = value.substr(0, 8).replace(pattern, '$1-$2-$3');
        _arr = Array.from(value).filter((item, index) => {
            /**
             * 例：["2", "0", "2", "2", "-", "0", "2", "-", "0", "2"]
             * 第5位（小于10并且前面+0的月份）或者第8位（小于10并且前面+0的日）为0的直接跳过，
             * 因为接口的参数不支持小于10并且前面+0（yyyy-0m-0d）的日期格式，支持yyyy-m-d
             */
            if ((index === 5 || index === 8) && item === '0') {
                return false;
            }
            return true;
        })
    }
    console.log('Array.from(value)', Array.from(value));
    console.log('_arr', _arr);
    return _arr.toString().replace(/,/g, "");
}

export {
    getNowDate,
    getIconData,
    formatChsDate,
    mapForChsDate,
    formatUserDate
}